package src.data.daos;

import java.util.HashSet;
import java.util.Set;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import src.data.hbt.HibernateProvider;
import src.domain.Cuenta;




public class CuentaDAO {
	private HibernateProvider provider;

	private static CuentaDAO instance = null;

	public static CuentaDAO getInstance() {
		if (instance == null)
			instance = new CuentaDAO();
		return instance;
	}
	
	private CuentaDAO() {
		this.provider = HibernateProvider.getInstance();

	}
	
	
	public Cuenta getByID(Cuenta cuenta){
		Criteria criteria = provider.getSession().createCriteria(Cuenta.class).add(Restrictions.like("cuentaId", cuenta.getCuentaId()));
		return (Cuenta) criteria.uniqueResult();	
	}
	
	@SuppressWarnings("unchecked")
	public Set<Cuenta> getAll() {
		Criteria criteria = provider.getSession().createCriteria(Cuenta.class);
		Set<Cuenta> set = new HashSet<Cuenta>();
		set.addAll(criteria.list());
		
		return set;

	}

	public void save(Cuenta cuenta) {
		provider.getSession().save(cuenta);
		
	}

	public void saveOrUpdate(Cuenta cuenta) {
		
		provider.getSession().saveOrUpdate(cuenta);
		
	}

	public void update(Cuenta cuenta) {	
		
		provider.getSession().update(cuenta);		
	}

	public void delete(Cuenta cuenta) {
		provider.getSession().delete(cuenta);
	}

	
	
}
